/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.losalpes.compras;

import com.losalpes.client.ClientsBean;
import com.losalpes.persistence.entity.Articulo;
import com.losalpes.persistence.entity.Compra;
import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

/**
 *
 * @author Oscar Ballesteros
 */
public class PagarBean {

    @EJB
    private IComprasServices comprasServices;
    private List<Articulo> productosComprados;
    private ClientsBean clientBean;    
    private Compra compra;
    private boolean compraRealizada;
    private CarritoBean carrito;

    public PagarBean() {        
    }

    public void prepararCompra(List<Articulo> carrito){
        FacesContext fc = FacesContext.getCurrentInstance();
        clientBean = (ClientsBean) fc.getApplication().getELResolver().getValue(fc.getELContext(), null, "ClientsBean");
        Date now = new Date();
        compra = new Compra();
        compra.setCliente(clientBean.getClient());
        compra.setReferencia(comprasServices.obtenerSiguienteReferencia());
        String descripcion = new String();
        Double valor = 0.0;
        for(Articulo art : carrito){
            descripcion = descripcion + art.getMueble().getNombre()+" "+art.getCantidad()+" Unidades\n";
            valor += art.getTotal();
        }
        compra.setArticulosComprados(carrito);
        compra.setDescripcion(descripcion);
        compra.setValor(valor);
        compra.setCiudad(clientBean.getClient().getCiudad());
        compra.setFechaCompra(now);
    }


    public void realizarCompra(){
        comprasServices.realizarCompra(compra);
        this.compraRealizada = true;
        FacesContext fc = FacesContext.getCurrentInstance();
        FacesMessage fm = new FacesMessage("Compra realizada Exitosamente");
        fc.addMessage(null, fm);
        fm = new FacesMessage("Numero de Aprobacion "+compra.getReferencia());
        fc.addMessage(null, fm);
        carrito = (CarritoBean)fc.getApplication().getELResolver().getValue(fc.getELContext(), null, "CarritoBean");
        carrito.limpiarCarrito();
    }

    public String volverCatalogo(){
        if(this.compraRealizada){
           this.compraRealizada = false;
           this.compra = new Compra();
        }
        return "go_catalogo";
    }

    public List<Articulo> getProductos() {
        return productosComprados;
    }

    public void setProductos(List<Articulo> productos) {
        this.productosComprados = productos;
    }

    public ClientsBean getClientBean() {
        return clientBean;
    }

    public void setClientBean(ClientsBean clientBean) {
        this.clientBean = clientBean;
    }

    public Compra getCompra() {
        return compra;
    }

    public void setCompra(Compra compra) {
        this.compra = compra;
    }

    public boolean isCompraRealizada() {
        return compraRealizada;
    }

    public void setCompraRealizada(boolean compraRealizada) {
        this.compraRealizada = compraRealizada;
    }

    public CarritoBean getCarrito() {
        return carrito;
    }

    public void setCarrito(CarritoBean carrito) {
        this.carrito = carrito;
    }


}
